home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / C / Link.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-19  |  6.5 KB  |  268 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:C:Link.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emith.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODLink_h
  21. #define SOM_ODLink_h
  22.  
  23.  
  24. #include <som.h>
  25.  
  26. /*
  27.  * -- This emitter treats Method Tokens as Thunks by default
  28.  * -- Use the sc modifier "nothunks" to change this default
  29.  */
  30. #undef somresolve_
  31. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  32.  
  33. /*
  34.  * Define the class name as an object type
  35.  */
  36. #ifndef ODLink
  37. #define ODLink SOMObject
  38. #endif
  39. #include <LinkB.h>
  40.  
  41. /*
  42.  * Start of user-defined types:
  43.  */
  44. #ifndef ODExtension
  45.     #define ODExtension SOMObject
  46. #endif /* ODExtension */
  47. #ifndef ODLinkSource
  48.     #define ODLinkSource SOMObject
  49. #endif /* ODLinkSource */
  50. #ifndef ODStorageUnit
  51.     #define ODStorageUnit SOMObject
  52. #endif /* ODStorageUnit */
  53. #ifndef ODPart
  54.     #define ODPart SOMObject
  55. #endif /* ODPart */
  56. #ifndef ODPartList
  57.     #define ODPartList SOMObject
  58. #endif /* ODPartList */
  59. #ifndef ODDraft
  60.     #define ODDraft SOMObject
  61. #endif /* ODDraft */
  62.  
  63. /*
  64.  * End of user-defined types.
  65.  */
  66.  
  67. #define ODLink_MajorVersion 1
  68. #define ODLink_MinorVersion 0
  69.  
  70. /*
  71.  * External name shortening if required
  72.  */
  73. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  74. #define ODLinkNewClass c
  75. #define ODLinkClassData d
  76. #define ODLinkCClassData x
  77. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  78. /*--------------Migration------------*/
  79. #define ODLink_classObj ODLinkClassData.classObject
  80. #define _ODLink ODLink_classObj
  81.  
  82. /*
  83.  * Declare the class creation procedure
  84.  */
  85.  
  86. #if applec ^ PRAGMA_LIB_EXPORT
  87. #pragma lib_export on
  88. #endif
  89.  
  90. SOMEXTERN SOMClass * SOMLINK ODLinkNewClass(integer4 somtmajorVersion,
  91.         integer4 somtminorVersion);
  92.  
  93. /*
  94.  * Declare the class data structure
  95.  */
  96. SOMEXTERN struct ODLinkClassDataStructure {
  97.     SOMAny *classObject;
  98.     somMToken reserved1;
  99.     somMToken reserved2;
  100.     somMToken reserved3;
  101.     somMToken reserved4;
  102.     somMToken reserved5;
  103.     somMToken reserved6;
  104.     somMToken reserved7;
  105.     somMToken reserved8;
  106.     somMToken reserved9;
  107. }
  108. #ifdef SOM_NO_DATA_EXPORTS
  109.     * ODLinkGetClassData ( void );
  110. #   undef ODLinkClassData
  111. #   define ODLinkClassData (*ODLinkGetClassData())
  112. #else
  113.       ODLinkClassData;
  114. #endif /* SOM_NO_DATA_EXPORTS */
  115.  
  116. #if applec ^ PRAGMA_LIB_EXPORT
  117. #pragma lib_export off
  118. #endif
  119.  
  120.  
  121. /*
  122.  * Declare the C specific class data structure
  123.  */
  124. SOMEXTERN struct ODLinkCClassDataStructure {
  125.     somMethodTabs parentMtab;
  126.     somDToken instanceDataToken;
  127. } ODLinkCClassData;
  128.  
  129. /*
  130.  * New and Renew macros for ODLink
  131.  */
  132. #define ODLinkNew() \
  133.     ( ( ! (ODLinkClassData.classObject) && \
  134.         (ODLinkNewClass(ODLink_MajorVersion, ODLink_MinorVersion)) ), \
  135.       (_somNew(ODLinkClassData.classObject)) )
  136. #define ODLinkRenew(buf) \
  137.     ( _somRenew(ODLinkClassData.classObject, buf) )
  138.  
  139. /*
  140.  * Override method: somInit
  141.  */
  142. #define ODLink_somInit(somSelf) \
  143.     SOMObject_somInit(somSelf)
  144.  
  145. /*
  146.  * Override method: somUninit
  147.  */
  148. #define ODLink_somUninit(somSelf) \
  149.     SOMObject_somUninit(somSelf)
  150.  
  151. /*
  152.  * Override method: Purge
  153.  */
  154. #define ODLink_Purge(somSelf,ev,size) \
  155.     ODObject_Purge(somSelf,ev,size)
  156.  
  157. /*
  158.  * Override method: Externalize
  159.  */
  160. #define ODLink_Externalize(somSelf,ev) \
  161.     ODPersistentObject_Externalize(somSelf,ev)
  162.  
  163. /*
  164.  * Override method: ReleaseAll
  165.  */
  166. #define ODLink_ReleaseAll(somSelf,ev) \
  167.     ODPersistentObject_ReleaseAll(somSelf,ev)
  168.  
  169. /*
  170.  * Override method: Lock
  171.  */
  172. #define ODLink_Lock(somSelf,ev,wait,key) \
  173.     ODBaseLink_Lock(somSelf,ev,wait,key)
  174.  
  175. /*
  176.  * Override method: Unlock
  177.  */
  178. #define ODLink_Unlock(somSelf,ev,key) \
  179.     ODBaseLink_Unlock(somSelf,ev,key)
  180.  
  181. /*
  182.  * Override method: GetContentStorageUnit
  183.  */
  184. #define ODLink_GetContentStorageUnit(somSelf,ev,key) \
  185.     ODBaseLink_GetContentStorageUnit(somSelf,ev,key)
  186.  
  187. /*
  188.  * Override method: RegisterDependent
  189.  */
  190. #define ODLink_RegisterDependent(somSelf,ev,clientPart,id) \
  191.     ODBaseLink_RegisterDependent(somSelf,ev,clientPart,id)
  192.  
  193. /*
  194.  * Override method: UnregisterDependent
  195.  */
  196. #define ODLink_UnregisterDependent(somSelf,ev,clientPart) \
  197.     ODBaseLink_UnregisterDependent(somSelf,ev,clientPart)
  198.  
  199. /*
  200.  * Override method: GetChangeID
  201.  */
  202. #define ODLink_GetChangeID(somSelf,ev) \
  203.     ODBaseLink_GetChangeID(somSelf,ev)
  204.  
  205. /*
  206.  * Override method: GetChangeTime
  207.  */
  208. #define ODLink_GetChangeTime(somSelf,ev) \
  209.     ODBaseLink_GetChangeTime(somSelf,ev)
  210.  
  211. /*
  212.  * Override method: GetStatus
  213.  */
  214. #define ODLink_GetStatus(somSelf,ev) \
  215.     ODBaseLink_GetStatus(somSelf,ev)
  216.  
  217. /*
  218.  * Override method: ShowSourceContent
  219.  */
  220. #define ODLink_ShowSourceContent(somSelf,ev) \
  221.     ODBaseLink_ShowSourceContent(somSelf,ev)
  222.  
  223. /*
  224.  * Override method: UpdateDependents
  225.  */
  226. #define ODLink_UpdateDependents(somSelf,ev,id) \
  227.     ODBaseLink_UpdateDependents(somSelf,ev,id)
  228.  
  229. /*
  230.  * Override method: CloneTo
  231.  */
  232. #define ODLink_CloneTo(somSelf,ev,draftKey,destDraft) \
  233.     ODBaseLink_CloneTo(somSelf,ev,draftKey,destDraft)
  234. #ifndef SOM_DONT_USE_INHERITED_MACROS
  235. #define ODLink_InitPersistentObject ODPersistentObject_InitPersistentObject
  236. #define ODLink_InitPersistentObjectFromStorage ODPersistentObject_InitPersistentObjectFromStorage
  237. #define ODLink_GetStorageUnit ODPersistentObject_GetStorageUnit
  238. #define ODLink_GetID ODPersistentObject_GetID
  239. #define ODLink_InitRefCntObject ODRefCntObject_InitRefCntObject
  240. #define ODLink_IncrementRefCount ODRefCntObject_IncrementRefCount
  241. #define ODLink_Release ODRefCntObject_Release
  242. #define ODLink_GetRefCount ODRefCntObject_GetRefCount
  243. #define ODLink_InitObject ODObject_InitObject
  244. #define ODLink_IsInitialized ODObject_IsInitialized
  245. #define ODLink_HasExtension ODObject_HasExtension
  246. #define ODLink_GetExtension ODObject_GetExtension
  247. #define ODLink_ReleaseExtension ODObject_ReleaseExtension
  248. #define ODLink_SubClassResponsibility ODObject_SubClassResponsibility
  249. #define ODLink_somFree SOMObject_somFree
  250. #define ODLink_somGetClass SOMObject_somGetClass
  251. #define ODLink_somGetClassName SOMObject_somGetClassName
  252. #define ODLink_somGetSize SOMObject_somGetSize
  253. #define ODLink_somIsA SOMObject_somIsA
  254. #define ODLink_somIsInstanceOf SOMObject_somIsInstanceOf
  255. #define ODLink_somRespondsTo SOMObject_somRespondsTo
  256. #define ODLink_somDispatchV SOMObject_somDispatchV
  257. #define ODLink_somDispatchL SOMObject_somDispatchL
  258. #define ODLink_somDispatchA SOMObject_somDispatchA
  259. #define ODLink_somDispatchD SOMObject_somDispatchD
  260. #define ODLink_somDispatch SOMObject_somDispatch
  261. #define ODLink_somClassDispatch SOMObject_somClassDispatch
  262. #define ODLink_somPrintSelf SOMObject_somPrintSelf
  263. #define ODLink_somDumpSelf SOMObject_somDumpSelf
  264. #define ODLink_somDumpSelfInt SOMObject_somDumpSelfInt
  265. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  266.  
  267. #endif       /* SOM_ODLink_h */
  268.